Individual temporal layer buffer management in hevc transport

ABSTRACT

A method is provided to determine buffer parameter settings for a plurality of layers in a transport stream. Each layer includes a respective transport stream buffer parameter setting. Then, the method provides respective transport stream buffer parameter settings to individual transport stream buffers for respective layers in the plurality of layers. Then, the method buffers the respective layers in the individual transport stream buffers according to the respective transport stream buffer parameter settings. After buffering, the method combines the respective layers to form a combined bit stream.

CROSS-REFERENCES TO RELATED APPLICATIONS

The present disclosure claims priority to U.S. Provisional App. No.62/001,412, entitled “Transport of SHVC and support for compelling usecases”, filed May 21, 2014, the contents of which is incorporated hereinby reference in its entirety. The present disclosure is related to PCTApp. No. PCT/US/2014/033231, entitled “Individual Buffer Management inVideo Coding”, filed Apr. 7, 2014, the contents of which is incorporatedherein by reference in its entirety. The present disclosure is alsorelated to U.S. Patent Application No. xx/xxx,xxx, entitled “Signalingfor Addition or Removal of Layers in Scalable Video,” filed concurrentlywith Docket No. ARR00240B, and incorporated by reference in itsentirety. The present disclosure is also related to U.S. PatentApplication No. xx/xxx,xxx, entitled “Signaling for Addition or Removalof Lauers in Scalable Video,” filed concurrently with Docket No.ARR00240C, and incorporated by reference in its entirety.

BACKGROUND

Scalable video coding supports decoders with different capabilities. Anencoder generates multiple encoded bitstreams for an input video. Thisis in contrast to single layer coding, which only uses one encodedbitstream for a video. In the scalable video coding, one of the outputencoded bitstreams, referred to as the base layer (BL), can be decodedby itself and this encoded bitstream provides the lowest scalabilitylevel of the video output. To achieve a higher level of video output,the decoder can process the base layer bitstream together with otherencoded bitstreams, referred to as enhancement layers (EL). Theenhancement layer may be added to the base layer to generate higherscalability levels. One example is spatial scalability, where the baselayer represents the lowest resolution video and the decoder cangenerate higher resolution video using the base layer bitstream togetherwith additional enhancement layer bitstreams. Thus, using additionalenhancement layer bitstreams produce a better quality video output, suchas by achieving temporal, signal-to-noise ratio (SNR), and spatialimprovements.

In a transmission model, such as a simulcast, a video on demand, or astreaming model, the encoder may transmit the video stream over variousmediums to various decoders of different capabilities. Buffer managementrequires sending the compressed bytes of video data for each picture(also called access unit) into a video buffer whose size and input rateis defined by a video standard and a scheme where the picture data isremoved at a specified time from the video buffer. Standards requirethat the video buffer never overflow (that is the video picture data isremoved at correct time before new data enters the buffer thus making itoverflow).

Decoders buffer the combined encoded bitstream before decoding unlessonly the base layer is being used. If only the base layer is beingdecoded, the decoder would buffer just the base layer. The buffermanagement may become difficult among decoders that are combining adifferent number of layers of the scalable video. For example, some ofthe decoders may request just the base layer, and some decoders mayrequest the base layer and any number of enhancement layers. Decodersthat request more than the base layer would combine the base layer andany enhancement layers, and then subsequently decode the combinedbitstream. Because the buffers include different layers combined intoencoded bitstreams, such as some buffers may include just the baselayer, and other buffers may include a different number of layers (e.g.,a base layer plus any number of enhancement layers), the management ofthe buffers may be difficult. For example, removal of the base layerplus enhancement layer data after combining them adds complexity and isa burden to the buffer management systems and many transport processingsystems that are used for base layer processing need to be re-designedand modified. This also imposes a burden on other applications such asre-multiplexing and transcoding.

Furthermore, while the above relates to video encoding, similar problemsexist for creating and managing MPEG-2 transport streams, which mayinclude multiple streams including scalable video streams. MPEG-2 is thedesignation for a group of such standards, promulgated by the MovingPicture Experts Group (“MPEG”) as the ISO/IEC 13818 internationalstandard. A typical use of MPEG-2 is satellite and cable. Thus, MPEG-2transport streams may be prone to buffering issues due to the multiplelayers in a scalable video stream.

SUMMARY

In one embodiment, a method according to the present invention includes:determining buffer parameter settings for a plurality of layers in atransport stream, wherein each layer includes a respective transportstream buffer parameter setting; providing respective transport streambuffer parameter settings to individual transport stream buffers forrespective layers in the plurality of layers; buffering the respectivelayers in the individual transport stream buffers according to therespective transport stream buffer parameter settings; and afterbuffering, combining the respective layers to form a combined bitstream;wherein the transport stream is at least partially derived from arespective video stream having a plurality of layers, each video streamlayer including a respective video stream buffer parameter setting.

In another embodiment, an apparatus includes: one or more computerprocessors; and a computer readable storage medium comprisinginstructions that, when executed, cause the one or more processors to:determine buffer parameter settings for a plurality of layers in atransport stream, wherein each layer includes a respective transportstream buffer parameter setting; send respective transport stream bufferparameter settings to individual transport stream buffers for respectivelayers in the plurality of layers to a decoder; wherein the decoderbuffers the respective buffer parameter settings, and wherein therespective layers are combined after the buffers to form a combinedbitstream, and wherein the transport stream is at least partiallyderived from a respective video stream having a plurality of layers,each video stream layer including a respective video stream bufferparameter setting.

In one embodiment, an apparatus includes: one or more computerprocessors; and a computer readable storage medium comprisinginstructions that, when executed, cause the one or more processors to:determine buffer parameter settings for a plurality of layers in atransport stream, wherein each layer includes a respective transportstream buffer parameter setting; apply respective transport streambuffer parameter setting to individual buffers for respective layers inthe plurality of layers; and buffer the respective layers in theindividual transport stream buffers according to the respectivetransport stream buffer parameter settings, wherein the respectivelayers are combined after the buffers to form a combined bitstream, andwherein the transport stream is at least partially derived from arespective video stream having a plurality of layers, each video streamlayer including a respective video stream buffer parameter setting.

The following detailed description and accompanying drawings provide abetter understanding of the nature and advantages of particularembodiments.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts a simplified system for providing scalable videoaccording to one embodiment.

FIG. 2A depicts a simplified example of individual buffers for a baselayer and enhancement layers according to one embodiment.

FIG. 2B depicts a more detailed example of a destination deviceaccording to one embodiment.

FIG. 3 depicts a more detailed example of the buffers for thedestination device according to one embodiment.

FIG. 4 depicts an example of signaling the buffer parameter settingsaccording to one embodiment.

FIG. 5 depicts a second example of configuring buffer parameter settingsaccording to one embodiment.

FIG. 6 depicts a simplified flowchart for encoding a scalable videostream according to one embodiment.

FIG. 7 depicts a simplified flowchart of a method for decoding ascalable video stream according to one embodiment.

DETAILED DESCRIPTION

Described herein are techniques for a buffer management system. In thefollowing description, for purposes of explanation, numerous examplesand specific details are set forth in order to provide a thoroughunderstanding of particular embodiments. Particular embodiments asdefined by the claims may include some or all of the features in theseexamples alone or in combination with other features described below,and may further include modifications and equivalents of the featuresand concepts described herein.

Particular embodiments provide individual buffer management for layersin a scalable video coding scheme, such as high efficiency scalablevideo coding for high efficiency video coding (HEVC). HEVC scalabilitymay support adding scalability to pre-compressed base layers and/orother enhancement layers. In all these cases, it may be difficult tomanage base layer and [base+enhancement layer] buffers in parallel toachieve conformant buffer behaviour. Accordingly, in one embodiment,buffer parameter settings manage buffer parameters, such as the buffersize and bitrate of individual buffers that store individual layers.That is, each layer may be stored in an individual buffer that can bemanaged with a respective buffer parameter setting. For example, a baselayer is stored in a first buffer and an enhancement layer is stored ina second buffer, and other enhancement layers are stored in otherrespective buffers. Each buffer may be managed with a buffer parametersetting that specifies parameters, such as the bitrate and size for eachrespective buffer. Managing the individual buffers simplifies themanagement of the buffers and also provides flexibility in allowingaddition of additional enhancement layers or the changing of parametersfor a layer.

FIG. 1 depicts a simplified system 100 for providing scalable videoaccording to one embodiment. System 100 includes a source device 102 anda plurality of destination devices 104-1-104-N. Source device 102includes an encoder 106 and each destination device 104-1-104-N includesa respective decoder 108-1-108-N. Source device 102 may be a device thattransmits encoded video to destination devices 104. In one embodiment,source device 102 may include a server or any other networking device orsystem that can encode video and transmit encoded video. Destinationdevices 104 may include devices that are capable of decoding the encodedvideo. Destination devices 104 may include networking devices, set topboxes, cellular phones, televisions, and any other computing devices.

In one embodiment, in scalable video coding, encoder 106 may generatemultiple bitstreams for an input video. As mentioned above, the baselayer may be decoded by itself and provides the lowest scalability levelof the video output, and additional enhancement layers may be combinedwith the base layer to generate higher scalability levels. Theenhancement layers enhance other layers, such as zero or moreenhancement layers and the base layer. As shown, encoder 106 maygenerate a base layer (BL) 110 and any number of enhancement layers (EL)112-1-112-N.

Destination devices 104 may request different layers from source device102 depending on the destination device's capabilities. Source device102 always needs to send base layer 110 to destination devices 104.However, source device 102 may send any number of enhancement layers 112to destination devices 104 including no enhancement layers 112. As shownin FIG. 1, destination device 104-1 only receives base layer 110. Inthis case, destination device 104-1 may only have the capability ofgenerating the lowest resolution video. Destination device 104-2receives the base layer 110 and one enhancement layer 112-1. Decoder108-2 can combine the base layer 110 and enhancement layer 112-1 togenerate a higher resolution video. Also, destination device 104-Nreceives base layer 110 and enhancement layers 112-1-112-N. Decoder108-N combines base layer 110 and the received enhancement layers112-1-112-N. The above process may save bandwidth, For example, decoder108-1 may only be able to decode the base layer and thus not receivingthe enhancement layers may reduce the bandwidth required to send thevideo stream to destination device 104-1. The same is true fordestination device 104-2 as less enhancement layers are sent todestination device 104-2 than to device 104-N.

Encoder 106 and decoders 108 manage the buffers (not shown) in decoders108 that store the bitstreams received for base layer 110 andenhancement layers 112. For example, encoder 106 includes an encoderbuffer manager 114 and each decoder 108 includes respective decoderbuffer managers 116-1-116-N. In one embodiment, encoder buffer manager114 may signal buffer parameter settings to decoders 108. In otherembodiments, encoder buffer manager 114 may not send the bufferparameter settings to decoder buffer manager 116; rather, as will bediscussed in more detail below, the buffer parameter settings may bepreset in decoder buffer manager 116. Decoder buffer managers 116 maythen manage the individual buffers that store base layer 110 andenhancement layers 112 using the buffer parameter settings.

The buffer parameter settings may manage characteristics of the buffer,such as the bitrate and the buffer size allocated for each layer. Forexample, the maximum bitrate and the maximum buffer size are managed.Although “settings” are described, the settings may include a settingfor one single parameter or multiple parameters.

As described above, particular embodiments manage the individual buffersfor each layer (base layer 110 and enhancement layers 112) before thecombining of the bitstreams for the base layer 110 and enhancementlayers 112. FIG. 2A depicts a simplified example of individual buffers202 for base layer 110 and enhancement layers 112 according to oneembodiment. A base layer buffer 202-1 and an enhancement layer buffer202-2 buffer the base layer and the enhancement layer, respectively. Acoded picture buffer 206-1 butlers the encoded bitstream of the baselayer. A base layer decoder 108-1 only decodes the base layer. Ifenhancement layers are to be decoded, a coded picture buffer 206-2buffers a combination of the base layer and the enhancement layers. Anenhancement layer decoder 108-2 decodes the output of coded picturebuffer 206-2, i.e., the combined base layer and enhancement layers. Afirst video stream at 204-1 is output by a first decoder 102-1 and asecond video stream at 204-2 is output by a second decoder 102-2. Firstdecoder 108-1 and second decoder 108-2 may be in different destinationdevices 104, or could be in the same destination device 104.

Decoder buffer managers 116 manage buffers 202 at various points. Forexample, decoder buffer managers 116 manage the input to buffers 202 andthe output of buffers 202. This may simplify the buffer management bydefining buffer parameter settings for a buffer for each enhancementlayer independently and thus moving the buffer management beforere-assembly of base and enhancement layers. This makes the buffermanagement similar for all the layers including base layer. In contrastto the Background, decoder buffer managers 116 manage the input toenhancement layer buffer 202-2 and also the output of enhancement layerbuffer 202-2. This is in contrast to managing just the output of codedpicture buffer 206-2, which outputs the combination of the base layerand the enhancement layers.

In one embodiment, buffer management in the video layer is called HRD(Hypothetical reference decoder). The video layer may also betransported in a transport stream. The corresponding buffer managementin the transport stream (MPEG transport stream) is called T-STD(Transport—System Target Decoder). For a majority of the applicationsthat use video such as broadcast, streaming, or VOD, the video isusually encapsulated in the transport stream and transmitted. Buffermanagement requires sending the compressed bytes of video data (e.g.,the encoded bitstream) for each picture (also called access unit). Thevideo data is stored in buffers 202 whose size and input rate is definedby the buffer parameter settings, such as a scheme where the picturedata is removed at a specified time from buffers 202. Managingindividual buffers 202 simplifies the complexity of the system targetdecoder's buffer management and makes it easier to implement. Also,managing the buffers for the individual base layer and enhancementlayers independently before reassembly of the layers simplifies thehypothetical reference decoder model.

FIG. 2B depicts a more detailed example of destination device 104according to one embodiment. Buffers 202-1-202-N are included in asingle destination device 104. Buffer 202-1 receives base layer 110 fromencoder 106, and buffers 202-2-202-N receive respective enhancementlayers 112-1, 112-2, . . . , 112-N, respectively. As will be discussedin more detail below, destination device 104 may receive a transportstream that includes packets for encoded bitstreams of the base layerand enhancement layers. Destination device 104 demultiplexes thetransport stream and stores respective bitstreams for base layer 110 andenhancement layers 112 from the transport stream in the proper buffers202.

The bitstreams may be then multiplexed together to form a combinedbitstream. For example, a reassembly device 205 receives the encodedbitstreams for base layer 110 and enhancement layers 112 from buffers202, and then combines base layer 110 with enhancement layers 112 toform a combined bitstream. Reassembly device 205 stores the combinedbitstream in a coded picture buffer 206. Decoder 108 reads the codedpictures out of coded picture buffer 206 for decoding.

Decoder buffer manager 116 receives buffer parameter settings for eachlayer. For example, decoder buffer manager 116 receives a first bufferparameter setting for base layer 110, a second buffer parameter settingfor enhancement layer 112-1, a third buffer parameter setting forenhancement layer 112-2, and so on. Although buffer parameter settingsfor each layer are described, it will be understood that some bufferparameter settings may apply to multiple layers, or a single bufferparameter setting may apply to all layers.

Decoder buffer manager 116 may apply buffer parameter settings to theinput and output of individual buffers 202 that are buffering eachindividual layer. In this case, decoder buffer manager 116 appliesbuffer parameter setting #1 to buffer 202-1, buffer parameter setting #2to buffer 202-2, buffer parameter setting #3 to buffer 202-3, and bufferparameter setting #N to buffer 202-N. This manages the butlers for eachindividual layer independently. That is, the buffers are managed foreach individual layer before any combination of the layers occurs.

Managing individual buffers 202 also makes management of the codedpicture buffer 206, which stored the combined bitstream, not necessary.Managing the bitrate and buffer size for each of the layers in buffers202 may indirectly manage the coded picture buffer 206. That is, if thebitstream read out of buffers 202 is controlled, the combined bitstreamfor coded picture buffer 206 is indirectly controlled.

In the T-STD, there may be other buffers where the transport stream(e.g., the encapsulated video data) is buffered. FIG. 3 depicts a moredetailed example of the buffers for destination device 104 according toone embodiment. Destination device 104 may use various types of buffersto buffer the transport stream, with each buffer serving a differentfunction. The output of the buffers may be the encoded bitstream for alayer that is extracted from the transport stream. However, it will beunderstood that although these buffers are shown, the buffers may beconfigured differently.

An encoded bitstream is received at a transport stream (TS)demultiplexer 302. The transport stream may include packets that includethe encoded bitstream for all layers where packets for different layersare intermixed. Each packet may include information for a single layer,however, and are identified via a packet identifier (PID) for therespective layer. TS demultiplexer 302 uses the packet identifier todemultiplex the transport stream. That is, TS demultiplexer 302 forwardstransport stream packets to various buffers that handle respectivelayers. In one example, TS demultiplexer 302 sends the packets for baselayer 110 in a stream shown at 304-1 and TS demultiplexer 302 sendspackets for enhancements layers 112 in streams shown at 304-2-304-N,respectively.

Transport stream buffers (TB) 306-1-306-N store the transport packetsfor each respective layer. Then, the data is transferred to respectivemultiplexing buffers (MB) 308-1-308-N with the headers removed from thetransport packets. In each multiplexing buffer, additional processing ofthe data may be performed, such as removing the packetized elementarystream (PES) packet header data. The resulting data is transferred to anelementary stream buffer (EB) 310, which includes respective streambuffers (SB) 312-1-312-N. SB 312-1-312-N may correspond to buffers 202as described previously. In each SB 312, the encoded streams for eachlayer are reconstructed and output to reassembly device 205, which maybe a multiplexer. Reassembly device 205 then reassembles base layer 110and any enhancement layers 112 and outputs the combined bitstream todecoder 108 that performs the decoding process. Once the encodedcombined bitstream is decoded, decoded pictures are stored in a decodedpicture buffer (DPB) 316.

As mentioned above, decoder buffer manager 116 may manage individualbuffers independently. In this case, decoder buffer manager 116 maymanage the input and the output of SB 312-1-312-N using buffer parametersettings; however, TB buffers 306 or MB buffers 308 may also be managedindividually.

In some embodiments, the plurality of buffers TB 306, MB 308 and EB 310,or a sub-combination of them, may be referred to collectively as“transport stream buffers” or “transport stream buffer system” sincethey are managing the buffering of the transport streams. The decoderbuffer managers 116 manage the input to the transport stream buffers andalso the output of the transport stream buffers. This is in contrast tomanaging just the output of the transport stream buffers, which outputsthe combination of the scalable video streams. Thus, the transportstream buffer management is achieved at the layer-level, where eachbuffer is managed before re-assembly.

Thus, in some embodiments, the decoder buffer managers 116 manage theindividual transport stream buffers by receiving instructions (e.g.,buffer parameter settings) from encoder buffer managers 114. The bufferparameter settings may manage characteristics of the buffer, such as thebitrate and the buffer size allocated for each layer. For example, themaximum bitrate and the maximum buffer size are managed. Although“settings” are described, the settings may include a setting for onesingle parameter or multiple parameters.

As discussed above, particular embodiments may provide the bufferparameter settings to decoder buffer manager 116 in different ways. Inone embodiment, encoder buffer manager 114 may signal the bufferparameter settings in the video stream or the transport stream. In someembodiments, the buffer parameter settings for each transport streamlayer are acquired from the respective buffer parameter settings in thevideo stream layers. For example, the buffer parameter settings (forbuffer management) may be acquired from the video parameter set (VPS),video usability information (VIM, sequence parameter set (SPS),supplemental enhancement information (SEI). In another embodiment, thebuffer parameter settings may be predetermined and preset in decoderbuffer manager 116. The following will describe the two different ways.

FIG. 4 depicts an example of signaling the butler parameter settingsaccording to one embodiment. First, the signaling in the video streammay indicate that the encoded bitstream can be managed for each layer(where the bitrate and buffer size is signaled for each layerseparately). In one embodiment, the signaling is done using twomethods—the first is in the video layer and may use the VPS, SPS, VUI ora new SEI that first signals the ability to do individual layer buffermanagement and also provides the buffer parameters such as input videorate to decoder buffer managers 116 and the layer-specific buffer size.The second method is in the video layer and may use HRD parameters inthe video VUI (video usability information) that signals the sameinformation as in the SEI. In the transport stream, the correspondingsignaling is a specific ‘video descriptor’ in the program map table(PMT) for each video layer that maps the parameters from the video tothis descriptor.

Table I includes a new prefix SEI payload type value in HEVC to signallayer specific information such as maximum bit rate, average bit rateand maximum CPB buffer size. Table I provides an example of the SEImessage syntax where the parameters can be signaled for a single layeror multiple layers. Although HEVC is discussed, the syntax may beapplied to other video coding standards.

HEVC Scalability Information SEI Message Syntax

TABLE I C Descriptor HEVC_scalability_info( payloadSize ) { active_vps_id 5 u(4)   for( i = 1; <= vps_max_layer_id; i++ ) {    layer_level_info_present_flag[ i ] 5 u(1)  layer_hrd_info_present_flag[i] 5 u(1)     If(layer_level_info_present_flag[i]      layer_level_idc[i] 5 u( 8)    if( layer_hrd_info_present_flag[i] ) {      layer_avg_bitrate_value[i ] 5 u(16)      layer_max_bitrate_value[ i ] 5 u(16)   layer_avg_cpb_size_value[i] 5 u(16)    layer_max_cpb_size_value[i] 5u(16)      layer_max_bitrate_calc_window[ i ] 5 u(16)     } }

The following describe the syntax in more detail: active_vps)id:identifies an active video parameter set (VPS) that contains the layerinformation. The value of active_vps_id shall be equal to the value ofvideo_parameter_set_id of the active VPS for the video coding layer(VCL) network abstraction layer (NAL) units of the access unitcontaining the SET message.

layer_level_info_present_flag[i]: specifies whether the levelinformation about layer index i.layer_level_idc[i]: indicates a level to which ith layer in the CVSconforms as specified in Annex A of the HEVC specification.layer_hrd_info_present_flag[i]: specifies whether the hrd informationabout layer index i is present.

-   -   layer_ max_bit_rate_value[i]: specifies the maximum bit rate        value of layer index        layer_avg_bit_rate_value[i]: specifies average bit rate value of        layer index i.        layer_max_cpb_size_value[i]: specifies maximum cpb size value of        layer index i.        layer_avg_cpb_size_value[i]: specifies average cpb size value of        layer index i.        max_bitrate_calc_window[i]: specifies the window to calculate        maximum bit rate for layer index i.

In the above syntax, the individual buffer parameters are set, such asthe average bitrate and maximum buffer size. This may set the bitrateand size for buffers 202 as described above (or SB 312).

Encoder buffer manager 114 may determine the buffer parameter settingsfor base layer 110 and enhancement layers 112. Encoder 106 may includethese parameters for each of the layers in the video layer. Also,individual packets may include buffer parameter settings 406 in thetransport stream 402 to send the buffer parameter settings 406. In thiscase, the packets that do not include the encoded bitstream include thebuffer management settings.

Table II shows a syntax for signaling using HRD extension for eachlayer:

vps_extension( )syntax

TABLE II Descriptor vps_extension ( ) {  ...  for( i=0; i <=vps_num_layer_sets_minus1; 1++)   for( j=1; j <= vps_max_layer_id; j++)   if( layer_id_included_flag[ i ][ j ] ) {    layer_set_hrd_layer_info_present_flag[ i ][ j ] u(1)       if(layer_set_hrd_layer_info_present_flag[ i ][ j ]) {      hrd_parameters(    cprm_present_flag[    i    ], vps_max_sub_layers_minus1 )    }  ...}

Decoder 108 receives the transport stream 402, and can determine thebuffer parameter settings 406 from the transport stream or video layerwhen individual buffer parameter settings are enabled 404. Decoderbuffer manager 116 then uses the buffer parameter settings to apply theparameters to buffers 202.

FIG. 5 depicts a second example of configuring buffer parameter settingsaccording to one embodiment. In this case, decoder buffer manager 116receives the buffer parameter settings as pre-determined settings. Inthis case, independent buffer sizes and bitrates may be set for eachlayer by a specification, such as the HEVC scalability specification. Auser or computer may set the buffer parameter settings in decoder buffermanager 116. Then, decoder buffer manager 116 may apply the bufferparameter settings to individual buffers 202. In this case, decoderbuffer manager 116 applies the buffer parameter settings implicitlywithout any communication from encoder 106 that includes the bufferparameter settings.

Alternatively, in some embodiments decoder buffer manager 116 may applythe buffer parameter settings to transport stream buffers. For example,buffer manager may apply buffer parameter settings to individual buffersSB 312. Decoder buffer manager 116 may apply the buffer parametersettings without any communication from encoder 106.

The following describes the encoding and decoding processes. FIG. 6depicts a simplified flowchart 600 for encoding a video stream accordingto one embodiment. At 602, encoder 106 determines which layers to sendto a specific destination device 104. As discussed above, encoder 106may send base layer 110 and any number of enhancement layers 112 todifferent destination devices 104.

At 604, encoder 106 encodes base layer 110 and enhancement layers 112into encoded bitstreams. At 606, encoder 106 packetizes the encodedbitstreams for base layer 110 and enhancement layers 112 into apacketized elementary stream (PES). At 608, encoder 106 includes bufferparameter settings in the video layer or the transport stream. Encoder106 then transmits the packets including the encoded bitstreams for baselayer 110 and enhancement layers 112 to destination device 104.

FIG. 7 depicts a simplified flowchart 700 of a method for decoding avideo stream according to one embodiment. At 702, decoder 108 receivesthe packets including the encoded bitstreams for base layer 110 andenhancement layers 112. At 704, decoder 108 determines the bufferparameter settings for the included layers in the packets. For example,the buffer parameter settings may be determined from the video layer orthe transport stream when the individual buffer parameter settings areenabled.

At 706, decoder 108 buffers the individual layers in buffers 202 foreach respective layer. At 708. decoder buffer manager 116 applies thebuffer parameter settings to each respective buffer 202. At 710, decoder108 reads the data for each layer out of buffers 202, combines theencoded bitstreams, and then buffers the combined bitstream fordecoding. At 712, decoder 108 then decodes the combined bitstream.

Particular embodiments may be implemented in a non-transitorycomputer-readable storage medium for use by or in connection with theinstruction execution system, apparatus, system, or machine. Thecomputer-readable storage medium contains instructions for controlling acomputer system to perform a method described by particular embodiments.The computer system may include one or more computing devices. Theinstructions, when executed by one or more computer processors, may beoperable to perform that which is described in particular embodiments.

As used in the description herein and throughout the claims that follow,“a”. “an”, and “the” includes plural references unless the contextclearly dictates otherwise. Also, as used in the description herein andthroughout the claims that follow, the meaning of “in” includes “in” and“on” unless the context clearly dictates otherwise.

The above description illustrates various embodiments along withexamples of how aspects of particular embodiments may be implemented.The above examples and embodiments should not be deemed to be the onlyembodiments, and are presented to illustrate the flexibility andadvantages of particular embodiments as defined by the following claims.Based on the above disclosure and the following claims, otherarrangements, embodiments, implementations and equivalents may beemployed without departing from the scope hereof as defined by theclaims.

1-20. (canceled)
 21. A method of decoding a video stream, by a decoder,including a layered stream having a plurality of temporal layers, themethod comprising: (a) receiving a video descriptor including at leastone syntax element in said video descriptor that apply to the whole saidlayered stream in response to said decoder providing a request to asource of said video stream indicating a number of temporal layers; (b)determining from said video descriptor at least one element thatindicates whether a plurality of temporal layers are present in saidlayered stream; (c) receiving at least one extension descriptor thatextends said video descriptor for each of said plurality of temporallayers in said layered stream; (d) determining from said at least oneextension descriptor that individual layer parameters for each of saidplurality of temporal layers in said layered stream are present; and (e)decoding each layer of said layered stream according to individual layerparameters signaled, wherein buffering for a decoding process includes:(i) determining buffer parameter settings for buffering each of saidplurality of temporal layers, wherein each of said plurality of temporallayers includes a respective buffer parameter setting; (ii) providingrespective said temporal layers to individual buffers for buffering eachof the respective said temporal layers in said layered stream; (iii)buffering said plurality of temporal layers in said individual buffersaccording to said respective buffer parameter settings.
 22. The methodof claim 21, wherein each said temporal layer is carried in a respectivesaid at least one elementary stream.
 23. The method of claim 21, whereinat least one of said buffer parameter settings specifies a bitrate for arespective said temporal layer entering a respective said individualbuffer.
 24. The method of claim 21, wherein at least one of saidindividual buffers is one of said buffers and said buffer parametersetting specifies a buffer size for at least one of said buffers. 25.The method of claim 21, wherein said buffer parameter settings areincluded in a video layer and/or said video stream.
 26. The method ofclaim 21, wherein said buffer parameter settings are derived from atleast one of said respective buffer parameter settings.
 27. The methodof claim 26, wherein a supplemental enhancement information fieldincludes said buffer parameter settings.
 28. The method of claim 27,wherein said buffer parameter settings are linked to respective saidbuffer parameter settings.
 29. The method of claim 21, wherein saidbuffer parameter settings are received from an encoder and are encodedin said video stream that includes said plurality of temporal layers.30. The method of claim 29, wherein said buffer parameter settingsreceived from said encoder are included in parameters in said videodescriptor associated with said plurality of temporal layers.